#ifndef SAVINGSACCOUNT_HH
#define SAVINGSACCOUNT_HH

#include "Account.hh"
class CheckingAccount; // Forward declaration

class SavingsAccount : public Account {
private:
    Bank* bank; // Pointer to the bank object
    public:
    SavingsAccount(const std::string& id, double initialBalance, const std::string& owner, Bank* bank); 
    ~SavingsAccount() = default;

    void deposit(double amount, const std::string& note = "") override;
    void withdraw(double amount, const std::string& note = "") override;
    void transferToChecking(CheckingAccount& to, double amount, const std::string& note = "");
    std::string getCheckingID(CheckingAccount& to);
    void accessAccount() override;
    void setBank(Bank* bank) override; // Setter for bank
};

#endif // SAVINGSACCOUNT_HH